// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObjectImpl;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

#include "MySqlEventSchedule.h"
#include "../../../../ast/SQLExpr.h"
#include "../MySqlObjectImpl.h"
#include "../../visitor/MySqlASTVisitor.h"

// @Override
void MySqlEventSchedule::accept0(MySqlASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(MySqlEventSchedule)))
  {
    acceptChild(visitor, at);
    acceptChild(visitor, every);
    acceptChild(visitor, starts);
    acceptChild(visitor, ends);
  }
  visitor->endVisit(SharedObject(MySqlEventSchedule));
}

SQLExpr_ptr MySqlEventSchedule::getAt()
{
  return at;
}

void MySqlEventSchedule::setAt(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlEventSchedule));
  }
  this->at = x;
}

SQLExpr_ptr MySqlEventSchedule::getEvery()
{
  return every;
}

void MySqlEventSchedule::setEvery(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlEventSchedule));
  }
  this->every = x;
}

SQLExpr_ptr MySqlEventSchedule::getStarts()
{
  return starts;
}

void MySqlEventSchedule::setStarts(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlEventSchedule));
  }
  this->starts = x;
}

SQLExpr_ptr MySqlEventSchedule::getEnds()
{
  return ends;
}

void MySqlEventSchedule::setEnds(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlEventSchedule));
  }
  this->ends = x;
}
